package com.reflect.cases;

/**
 * 反射案例
 */

import java.io.InputStream;
import java.lang.reflect.Method;
import java.util.Properties;

/**
 * 需求:创建任意类的对象,并且执行方法
 */
public class reflectCase {
    public static void main(String[] args) throws Exception {

        //加载配置文件
        //创建对象
        Properties properties = new Properties();
        ClassLoader classLoader = reflectCase.class.getClassLoader();
        //获取class文件下的pro配置文件
        InputStream resourceAsStream = classLoader.getResourceAsStream("pro.properties");
        properties.load(resourceAsStream);
        //获取配置文件中的数据
        String className = properties.getProperty("className");
        String methodName = properties.getProperty("methodName");

        //加载该类进内存
        Class<?> aClass = Class.forName(className);

        //创建对象
        Object o = aClass.newInstance();
        Method method = aClass.getMethod(methodName);

        method.invoke(o);
    }
}
